Currently, Network Management Systems (NMS) that use Simple Network Management Protocol (SNMP) send individual SNMP GET commands to all addresses on a network as a process for discovering devices on the network. If a device resides at the address, the device responds to the SNMP GET so the NMS will know that there is a device at the address. If a device does not reside at an address on the network, the NMS will time-out and assume that there is not a device currently at the address. Through this process, the NMS can determine where devices are on the network.
The problem with this type of process is that for a large network the number of packets sent by the NMS to discover all the devices on the network may be very time consuming and will require the NMS to send a large amount of packets. For example, if the network is an Internet Protocol (IP) class B network, the NMS would have to send out over 65,000 SNMP GETs to determine if there are devices at each address on the network. If only half the IP addresses are used, the NMS will send over 32,000 messages that are not even answered. This process tends to be very inefficient for large networks and creates a lot of unnecessary traffic on the network.
This problem only gets exacerbated when there is a firewall between the NMS and the network. Some firewalls are configured to either not allow traffic on a specific IP port or to limit traffic on a specific IP port. In these cases, the NMS may not be able to discover all the devices on the network due to the restrictions of the firewall.